﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace LearningCompany_DAO
{
    public partial class Stagiaire
    {

        #region Attributs et accesseurs
        public string Identite
        {
            get
            {
                return this.Civilite.LibelleCourt + " " + this.NomPrenom;
            }
        }

        public string NomPrenom
        {
            get
            {
                return this.Nom.ToUpper() + " " + this.Prenom;
            }
        }
        #endregion

        #region Constructeurs

        #endregion

        #region Méthodes
        public static Stagiaire GetInstance(int aIdentifiant)
        {
            return (from oStagiaire in ContexteDAO.ContexteDonnees.Stagiaire
                    where oStagiaire.Identifiant == aIdentifiant
                    select oStagiaire).FirstOrDefault();
        }

        public static Dictionary<Client, List<Stagiaire>> GetListeStagiairesParClient(string aNom)
        {
            return (from oStagiaire in ContexteDAO.ContexteDonnees.Stagiaire
                    where oStagiaire.Nom.Contains(aNom)
                    group oStagiaire by oStagiaire.Client into oListeStagiairesParClient
                    select oListeStagiairesParClient)
                        .ToDictionary(oGroup => oGroup.Key,
                                      oGroup => oGroup.ToList());
        }

        public void Inscrire(SessionFormation aSessionFormation)
        {
            this.SessionsFormation.Add(aSessionFormation);
        }

        public List<SessionFormation> GetListeSessionsFormation()
        {
            return (from oSessionFormation in ContexteDAO.ContexteDonnees.SessionFormation
                    from oStagiaire in oSessionFormation.Stagiaires
                    where oStagiaire.Identifiant == this.Identifiant
                    select oSessionFormation).ToList();
        }
        #endregion
    }
}
